﻿using AVIS.OutBound.BookOrders;
using AVIS.OutBound.Orders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AVIS.OutBound.RateCodes
{
    public interface IRateCodeManager
    {
        /// <summary>
        /// 获取满足订单的套餐价格代码（最新的4条，如果没有包含默认的，则再加入空的默认套餐）
        /// </summary>
        /// <param name="order">预订单</param>
        /// <returns>套餐价格代码列表（最新的4条，如果没有包含默认的，则再加入空的默认套餐）</returns>
        List<RateCode> GetRateCodesByOrder(BookOrder order);

        /// <summary>
        /// 获取指定订单的套餐价格代码（不包含基础套餐）
        /// </summary>
        /// <param name="order">预订单</param>
        /// <returns></returns>
        RateCode GetRateCode(Order order);

        /// <summary>
        /// 获取指定订单套餐价格代码（不包含基础套餐，）
        /// </summary>
        /// <param name="order">对象为BookOrder</param>
        /// <returns></returns>
        RateCode GetRateCodeData(BookOrder order);
    }
}
